package day03;

public class Exercise_day03 {
    public static void main(String[] args) {
        /*
        1.运算符的练习：算术
        -输出几个整数取模，验证结果
         */
        System.out.println(5%2);//1,商2余1.
        System.out.println(8%2);//0,商4余0,即为整除
        System.out.println(2%8);//2,商0余2
         /*
        -声明两个整型变量，演示单独使用时的自增和自减
          */
        int a = 5,b = 10;
        a++;
        ++b;
        System.out.println(a);//6
        System.out.println(b);//11
//        -声明几个整型变量，演示被使用时的自增和自减
        int c = 5,d= 10;
        int e = c++;
        int f = ++d;
        System.out.println(c);//6
        System.out.println(d);//11
        System.out.println(e);//5
        System.out.println(f);//11





//        2.运算符的练习：关系
//        -声明几个变量，演示最基本的>，<，>=，<=，==，!=操作
        int g = 5,h = 10,j = 5;
        boolean b1 = g>h;
        System.out.println(b1);//false
        System.out.println(h<j);//false
        System.out.println(g==j);//true
        System.out.println(g<=j);//true
        System.out.println(h>=g);//true
        System.out.println(g!=h);//true

//        -演示关系运算符和算术运算符联合使用的效果
        System.out.println(g+h>j);//true
        System.out.println(g+j<h);//false
        System.out.println(g+h>=j+h);//true
        System.out.println(g+j<=h+j);//true
        System.out.println(g+j==h);//true
        System.out.println(g+j!=h);//false



//        3.运算符的练习：逻辑
//        -声明三个整型变量，演示&&和||，演示!.
          int l =5,m = 10,n = 5;
          boolean c1 = l>m & m>n;
        System.out.println(c1);//false && true=false
        System.out.println(l<m && m>n);//true && true=true
        System.out.println(l>m || m<n);//false || false=false
        System.out.println(l<m || m<n);//true ||false=true
        System.out.println(!(l>m && n>m));//true
//       -&&的演示要求：true+false、false+true、true+true、false+false
        System.out.println(m>l && n>m);
        System.out.println(l>m && m>n);
        System.out.println(l<m && m>n);
        System.out.println(l>m && m<n);

//       -||的演示要求：true+false、false+true、true+true、false+false
        System.out.println(l<m || m<n);
        System.out.println(l>m || m>n);
        System.out.println(l<m || m>n);
        System.out.println(l>m || m<n);
//        -!的演示要求：true、false
        System.out.println(!(l>m && m<n));
        System.out.println(!(l<m ||m<n));
//        -演示短路&&与短路||
        boolean l1 = l+n>=m &&n++>10;
        System.out.println(l1);
        System.out.println(n);
        boolean l2 = l+n<=m ||n++>=10;
        System.out.println(l2);
        System.out.println(n);




//        4.运算符的练习：赋值
//        -声明一个整型变量，演示扩展赋值+=、-=、*=、/=、%=的效果
        int o = 5;
        o +=5;
        o -=6;
        o *=5;
        o /=2;
        o %=0;
//        -声明short型变量s，演示简单赋值运算的自增10，演示扩展赋值运算的自增10
        short s = 5;
        s =(short)(s+10);
        s +=10;


//        5.运算符的练习：字符串连接
//        -声明整型变量age和字符串型变量name，输出字符串连接的结果
        int age = 33;
        String name = "刘顺国";
        System.out.println("大家好，我叫"+name+",今年"+age+"岁了。");
//        -输出几个数据的拼接，演示字符串连接的同化作用
        System.out.println(10+20+""+30);
        System.out.println(""+10+20+30);
        System.out.println(10+20+30+"");
        System.out.println(""+10+20+30+10);


//        6.运算符的练习：条件/三目
//     -声明并初始化整型变量，使用条件运算符实现：若>0则给flag赋值为1，否则赋值为0
        int m1 = 1;//(带数1/-1)
        int flag = m1>0?1:0;
        System.out.println(flag);
//     -声明两个整型变量，使用条件运算符实现：求这两个变量的最大值
        int h1= 50 ,h2=5;//(代数5/55；50/5)
        int max = h1>h2?h1:h2;
        System.out.println("max的最大值是:"+max);//55/50

//        7.分支结构的练习：if
//        -满500打8折
        int price = 600;//(带数600/300)
        if (price >=500) {
            price *=0.8;
        }
        System.out.println("最终消费金额是:"+price);
//        -判断成绩是否合法
        double score = 95;//(带数95/100/101/-5)
        if (score>=0 && score<=100){
            System.out.println("成绩合法！");
        }
        System.out.println("继续执行....");


//        8.分支结构的练习：if...else
//         -满500打8折，不满500打9折
        double price1 = 600;//(带数600/700/300)
        if (price>=500){
            price *=0.8;
        }else{
            price *=0.9;
        }
        System.out.println("最终消费金额是:"+price);

//          -判断成绩合法还是不合法
        int score1 = -5;//(带数95/100/101/-5)
        if (score1>=0 && score1<=100){
            System.out.println("成绩合法！");
        }
        System.out.println("继续执行......");

//        9.分支结构的练习：if...else if
//       -满2000打5折，满1000不满2000打7折，满500不满1000打8折，不满500打9折
        double price2 = 3000 ;//(带数3000/2000/1500、500/900)
        if (price2>=2000){
            price2 *=0.5;
        }else if (price2>=1000){
            price2 *=0.7;
        }else if (price2>=500){
            price2 *=0.8;
        }else{
            price2 *=0.9;
        }
        System.out.println("最终结算金额是:"+price2);


    }
}
